草庐IT

TypeScript 运算符

全部标签

javascript - 执行 && 和 ||运算符将其操作数转换为 bool 值?

Flanagan的O'ReillyJavaScript书指出:Unlikethe&&and||operators,the!operatorconvertsitsoperandtoabooleanvalue[...]beforeinvertingtheconvertedvalue.如果那些逻辑运算符不将操作数转换为bool值,如何计算表达式? 最佳答案 它们确实将值转换为bool值,但仅确定如何继续计算表达式。表达式的结果不一定是bool值(事实上,如果您的操作数都不是bool值,它不会给您一个bool值):varx=false||'

javascript - 在 Coffeescript 中迭代 ES6 Set/Map(使用 `of` 运算符)

如何迭代ES6Map或Set在Coffeescript中?在Javascript中可以使用例如s=newSet()s.add({a:1})for(xofs){console.log(x);}但是Coffeescript有自己的of运算符,可以转换为in,即:console.log(x)forxofs变成...for(xins){...}。如何在Coffeescript中访问Javascript的of运算符?人们可以通过遍历s.values().next()来编写自己的自定义迭代器,但那是一种令人厌恶的行为。:) 最佳答案 目前无法使

javascript - 非数字的位运算

不知何故,JavaScript使bitwiseoperations变得有意义了NaN^1、Infinity^1甚至'a'^1(均计算为1)。管理非数字的按位运算符的规则是什么?为什么以上所有示例的计算结果都是1? 最佳答案 根据ES5spec,当做bitwiseoperations,所有操作数都转换为ToInt32(它首先调用ToNumber。如果值为NaN或Infinity,它会转换为0)。因此:NaN^1=>0XOR1=>1 关于javascript-非数字的位运算,我们在Stack

javascript - `(this as any)` 在此 typescript 片段中意味着什么?

我遇到了这段代码,但不明白它到底做了什么:publicuploadItem(value:FileItem):void{letindex=this.getIndexOfItem(value);letitem=this.queue[index];lettransport=this.options.isHTML5?'_xhrTransport':'_iframeTransport';item._prepareToUploading();if(this.isUploading){return;}this.isUploading=true;(thisasany)[transport](item)

javascript - 使用 TypeScript 在现有原型(prototype)上扩展实例/静态函数

我最近问了一个关于TypeScript扩展JavaScriptAPI中现有原型(prototype)的能力的问题(此处:ExtendingObject.prototypewithTypeScript)。这原来是一个错误,自TypeScript0.9.0Alpha以来已得到解决(现在包括泛型...很棒:-))在TypeScript中,接口(interface)是开放式的,因此如果您查看lib.d.ts,您会发现一个定义JavaScript对象API契约的接口(interface)。您还应该看到Object的变量声明,它定义了Object的静态函数。为了简单起见,它们在这里://Pulle

javascript - 每个 JavaScript 程序都是 TypeScript 程序吗?

TypescriptLanguageSpecification说:EveryJavaScriptprogramisalsoaTypeScriptprogram现在考虑这段代码:vari=5;i="five";这是一个完全有效的javascript,可以毫无错误地执行。它不是有效的TypeScript,将无法编译。我对上面引用的语句和代码示例的理解显然不匹配。能否请您澄清一下,在我上面给出的示例的上下文中,是什么使规范声明为真。更新为了解决声明不反射(reflect)程序有效性的论点,让我们这样改写它:EveryJavaScriptprogramisalsoavalidorinvalid

javascript - 在 TypeScript 中导入 Victor.js?

我正在尝试使用victor.jsTypeScript项目(3.0.1)中的库,我在尝试导入和使用它时感到非常心痛。我已经从npm安装它以及它的类型(victor@types/victor)。我尝试过多种方式导入它,但似乎无法在我的IDE中将其与类型解析一起导入。我试过这些:import{Victor}from'victor';import*asvfrom'victor';(此模块只能通过打开“allowSyntheticDefaultImports”标志并引用其默认导出来引用ECMAScript导入/导出)importVictor=require('victor');(在针对ecmas

javascript - 在 Typescript 中使用超出范围的函数

我认为这个问题已经在某个地方、某个时候得到解决,只是我记不清了,所以这是我的问题:我正在做一些将加载到现有应用程序中的javascript工作。这个应用程序有大量可用的功能,除了一些我想实际使用的功能外,我几乎不知道其中的任何功能。因此,假设我知道window.srslyUsefulFunction对我可用,我不太关心将其移植到typescript定义中。所以问题是如何在我自己的typescript文件中使用window.srslyUsefulFunction而无需为其创建定义?例子:classMyClass{publicMyMethod(id:string):void{//dosom

c# - 无法在 Visual Studio 2012 中编译 TypeScript 文件

我下载并安装了VS2012的TypeScript扩展,我得到了我的第一个示例编译通过手动将ts文件拖到tsc.exe文件上!因为没有其他方法可以编译该文件。我不想每次要调试页面时都手动执行此操作!我在网上阅读了大约5篇文章,但没有一个解决方案有效。我试过在Windows中将TypeScript编译器添加到PATH,我试过通过Nuget包管理器下载和安装Sholo东西,我试过这些页面:UsingTypeScriptincshtmlfilesVisualStudioTypeScriptOptionsDebuggingTypeScriptcodewithVisualStudioCannotc

javascript - 使用扩展运算符更新对象值

我有一个向传入对象添加键的函数,但有人告诉我为此使用扩展运算符,有人告诉我可以使用扩展运算符创建一个具有相同属性的新对象,然后对其设置isAvailable。returnnewPartner(ServerConfig,capabilities,initialState)}classPartner{constructor(ServerConfig,capabilities,initialState){initialState.isAvailable=true所以我尝试了类似的方法但没有成功,你能帮帮我吗?很困惑,我应该以这种方式使用扩展运算符,从函数返回吗?newObject={}//u